DATE: July 15th, 1997
SUBJECT: Quake's texture files
OFFSET SIZE/TYPE COMMENTS
---------------------------------------------------------------------------
0000h 12 bytes, char[12] Name of texture
000Ch 4 bytes, char[4] "???K"
0010h 4 bytes, DWORD width
0014h 4 bytes, DWORD height
0018h 4 bytes, DWORD offset of mipscale 0 image
001Ch 4 bytes, DWORD offset of mipscale 1 image
0020h 4 bytes, DWORD offset of mipscale 2 image
0024h 4 bytes, DWORD offset of mipscale 3 image
0028h char[width*height] Image (mipscale 0)
? char[(width/2)*(height/2)]
Image (mipscale 1)
? char[(width/4)*(height/4)]
Image (mipscale 2)
? char[(width/8)*(height/8)]
Image (mipscale 3)
This way of storing the textures has to do with Quake's way of rendering
realistic 3D while not having to overburden the processer with every single
small pixel. The scale that determines which of these gets drawn can be changed
thru Quake's console variable: d_mipscale. Usually set to 1, 0 means no
mipscaling, while the higher the value the blockier the walls become.